home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / gui / muibuilderv11.lha / muibuilder / mb / e / characters / Characters.e < prev    next >
Text File  |  1994-03-07  |  8KB  |  195 lines

  1. /******************************************************************************
  2.     Here is an example of an "environnement file". All you have to do, si to
  3. fill it with :
  4.     - use MUIBuilder+GenCodeE to generate the create_app() function
  5.     - add the code for your application !!!
  6. ******************************************************************************/
  7.  
  8. OPT OSVERSION=37
  9.  
  10.     /* Module definitions */
  11. MODULE 'muimaster', 'libraries/mui'
  12. MODULE 'utility/tagitem', 'utility/hooks'
  13. MODULE 'intuition/classes', 'intuition/classusr'
  14.  
  15.     /* Error handling */
  16. ENUM NO_LIBRARY, MUI_APPLICATION_FAILURE
  17. RAISE   NO_LIBRARY              IF OpenLibrary()=NIL,
  18.         MUI_APPLICATION_FAILURE IF Mui_NewObjectA()=NIL
  19.  
  20.     /* Constant definitions */
  21. CONST MUI_TRUE = 1
  22.  
  23.     /* Global variables */
  24. /*MUIB*/ DEF app, wi_Characters, stR_name, cy_sex, ra_Race, ra_Class, ch_cloak
  25. /*MUIB*/ DEF ch_shield, ch_gloves, ch_helmet, sl_experience, sl_strength
  26. /*MUIB*/ DEF sl_dexterity, sl_condition, sl_intelligence
  27. /*MUIB*/ DEF stR_CY_sex : PTR TO LONG
  28. /*MUIB*/ DEF stR_GR_Register : PTR TO LONG
  29. /*MUIB*/ DEF stR_RA_Race : PTR TO LONG
  30. /*MUIB*/ DEF stR_RA_Class : PTR TO LONG
  31.  
  32.  
  33.     /* Main procedure */
  34. PROC main() HANDLE
  35.  
  36.     DEF signal, result_DoMethod, running = TRUE
  37.  
  38.     muimasterbase := OpenLibrary('muimaster.library', 0)
  39.     create_app()
  40.  
  41.     /* Notify : close gadget => end of application */
  42.     doMethod( wi_Characters, [ MUIM_Notify, MUIA_Window_CloseRequest, MUI_TRUE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit ] )
  43.  
  44.     /* Open the window */
  45.     set( wi_Characters, MUIA_Window_Open, MUI_TRUE )
  46.  
  47.     WHILE running
  48.         result_DoMethod := doMethod( app, [ MUIM_Application_Input, {signal} ] )
  49.         SELECT result_DoMethod
  50.             CASE MUIV_Application_ReturnID_Quit
  51.                 running := FALSE
  52.         ENDSELECT
  53.         IF (running AND signal) THEN Wait( signal )
  54.     ENDWHILE
  55.  
  56.     Mui_DisposeObject( app )
  57.     CloseLibrary( muimasterbase )
  58.  
  59. EXCEPT
  60.     SELECT exception
  61.         CASE NO_LIBRARY
  62.         CASE MUI_APPLICATION_FAILURE
  63.     ENDSELECT
  64. ENDPROC
  65.  
  66.  
  67.     /* Procedure generated by GenCodeE which creates your application */
  68. PROC create_app()
  69.     stR_CY_sex := [ 'female', 'male', NIL ]
  70.     stR_GR_Register := [ 'Race', 'Class', 'Armor', 'Level', NIL ]
  71.     stR_RA_Race := [ 'Human', 'Elf', 'Dwarf', 'Hobbit', 'Gnome', NIL ]
  72.     stR_RA_Class := [ 'Warrior', 'Rogue', 'Bard', 'Monk', 'Magician', 'Archmage', NIL ]
  73.  
  74.     app := ApplicationObject,
  75.         MUIA_Application_Author, 'Stefan Stuntz',
  76.         MUIA_Application_Base, 'CHARACTER',
  77.         MUIA_Application_Title, 'Characters',
  78.         MUIA_Application_Version, '$VER: Characters 1.1 (xx.xx.xx)',
  79.         MUIA_Application_Copyright, 'Stefan Stuntz',
  80.         MUIA_Application_Description, 'Just an example !!',
  81.         MUIA_HelpFile, 'character.guide',
  82.         SubWindow, wi_Characters := WindowObject,
  83.             MUIA_Window_Title, 'Characters',
  84.             MUIA_HelpNode, 'WI_Characters',
  85.             MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
  86.             WindowContents, GroupObject,
  87.                 Child, GroupObject,
  88.                     MUIA_HelpNode, 'GR_Global',
  89.                     MUIA_Group_Columns, 2,
  90.                     Child, Label( 'Name' ),
  91.                     Child, stR_name := StringObject,
  92.                         StringFrame,
  93.                         MUIA_HelpNode, 'STR_name',
  94.                         MUIA_String_MaxLen, 80,
  95.                         MUIA_String_Format, 0,
  96.                     End,
  97.                     Child, Label( 'Sex' ),
  98.                     Child, cy_sex := CycleObject,
  99.                         MUIA_HelpNode, 'CY_sex',
  100.                         MUIA_Cycle_Entries, stR_CY_sex,
  101.                     End,
  102.                 End,
  103.                 Child, RegisterGroup( stR_GR_Register ),
  104.                     Child, ra_Race := RadioObject,
  105.                         GroupFrameT( 'Race' ),
  106.                         MUIA_Radio_Entries, stR_RA_Race,
  107.                     End,
  108.                     Child, ra_Class := RadioObject,
  109.                         GroupFrameT( 'Class' ),
  110.                         MUIA_Radio_Entries, stR_RA_Class,
  111.                     End,
  112.                     Child, GroupObject,
  113.                         GroupFrameT( 'Armor' ),
  114.                         MUIA_Group_Columns, 2,
  115.                         Child, Label( 'Cloak' ),
  116.                         Child, ch_cloak := CheckMark( FALSE ),
  117.                         Child, Label( 'Shield' ),
  118.                         Child, ch_shield := CheckMark( FALSE ),
  119.                         Child, Label( 'Gloves' ),
  120.                         Child, ch_gloves := CheckMark( FALSE ),
  121.                         Child, Label( 'Helmet' ),
  122.                         Child, ch_helmet := CheckMark( FALSE ),
  123.                     End,
  124.                     Child, GroupObject,
  125.                         GroupFrameT( 'Level' ),
  126.                         MUIA_Group_Columns, 2,
  127.                         Child, Label( 'Experience' ),
  128.                         Child, sl_experience := SliderObject,
  129.                             MUIA_Slider_Min, 0,
  130.                             MUIA_Slider_Max, 100,
  131.                             MUIA_Slider_Quiet, FALSE,
  132.                             MUIA_Slider_Level, 3,
  133.                             MUIA_Slider_Reverse, FALSE,
  134.                         End,
  135.                         Child, Label( 'Strength' ),
  136.                         Child, sl_strength := SliderObject,
  137.                             MUIA_Slider_Min, 0,
  138.                             MUIA_Slider_Max, 100,
  139.                             MUIA_Slider_Quiet, FALSE,
  140.                             MUIA_Slider_Level, 10,
  141.                             MUIA_Slider_Reverse, FALSE,
  142.                         End,
  143.                         Child, Label( 'Dexterity' ),
  144.                         Child, sl_dexterity := SliderObject,
  145.                             MUIA_Slider_Min, 0,
  146.                             MUIA_Slider_Max, 100,
  147.                             MUIA_Slider_Quiet, FALSE,
  148.                             MUIA_Slider_Level, 24,
  149.                             MUIA_Slider_Reverse, FALSE,
  150.                         End,
  151.                         Child, Label( 'Condition' ),
  152.                         Child, sl_condition := SliderObject,
  153.                             MUIA_Slider_Min, 0,
  154.                             MUIA_Slider_Max, 100,
  155.                             MUIA_Slider_Quiet, FALSE,
  156.                             MUIA_Slider_Level, 39,
  157.                             MUIA_Slider_Reverse, FALSE,
  158.                         End,
  159.                         Child, Label( 'Intelligence' ),
  160.                         Child, sl_intelligence := SliderObject,
  161.                             MUIA_Slider_Min, 0,
  162.                             MUIA_Slider_Max, 100,
  163.                             MUIA_Slider_Quiet, FALSE,
  164.                             MUIA_Slider_Level, 74,
  165.                             MUIA_Slider_Reverse, FALSE,
  166.                         End,
  167.                     End,
  168.                 End,
  169.             End,
  170.         End,
  171.     End
  172. ENDPROC
  173.  
  174.  
  175.     /* DoMethod() function */
  176. PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
  177.  
  178.     DEF h:PTR TO hook, o:PTR TO object, dispatcher
  179.  
  180.     IF obj
  181.         o := obj-SIZEOF object     /* instance data is to negative offset */
  182.         h := o.class
  183.         dispatcher := h.entry      /* get dispatcher from hook in iclass */
  184.         MOVEA.L h,A0
  185.         MOVEA.L msg,A1
  186.         MOVEA.L obj,A2           /* probably should use CallHookPkt, but the */
  187.         MOVEA.L dispatcher,A3    /*   original code (DoMethodA()) doesn't. */
  188.         JSR (A3)                 /* call classDispatcher() */
  189.         MOVE.L D0,o
  190.         RETURN o
  191.     ENDIF
  192.  
  193. ENDPROC NIL
  194.  
  195.